توی این پست میخونیم که چرا نباید npm را با دسترسی روت اجرا کرد و چه خطری داره و در پایان هم میبینیم که راه حل چیه.
برای نصب Node و Npm چندین روش وجود داره :
- استفاده از Homebrew در مک
- استفاده Node Version Manager
- استفاده از نصب کننده (installer) سایت رسمی نود
خب دو روش اول امن هستند و نیازی به استفاده از sudo ندارن ولی راه حل سوم، راه ترین روش هست ولی امن ترین روش نیست. چرا؟
چون اگر بخواهید پکیجی را بصورت گلوبال نصب کنید مجبورید دسترسی روت رو هم بهش بدید برای مثال:
|
|
چه مشکلی داره ؟
در کل شما تا جایی که میتونید و ضروری نیست نباید برنامه ها رو با دسترسی روت اجرا کنید. در اینجا هم node و npm هم بدون دسترسی ادمین میتونن به درستی کار کنند. حالا اگر دسترسی روت بهشون بدیم مثلا سرور رو با روت اجرا کنیم ، اگر روزی سرور هک شد هکر میتونه به تمام سیستم دسترسی پیدا کنه.
راه حل چیه؟
خوشبختانه چندتا راه حل ساده داره :
راه حل اول: تغییر پرمیژن دایرکتوری پیشفرض npm
اول با این دستور دایرکتوری پیشفرض رو پیدا میکنیم:
|
|
برای بیشتر سیستم ها خروجی اینه : usr/local/ .
اگر خروجی شما usr/ بود این راه رو ادامه ندید و به روش دوم برید.
حالا کافیه تا با این دستور owner دایرکتوری ها رو به یوزر خودتون تغییر بدید:
|
|
راه حل دوم: تغییر دایرکتوری پیشفرض
شاید گاهی اوقات نخواهید که طبق روش بالا owner پوشه ها رو تغییر بدین مثلا اگر از سیستمی استفاده میکنید که چند یوزر داره با تغییر مالک دایرکتوری ها، بقیه یوزرها به مشکل برمیخورند.
توی این روش، یک دایرکتوری مخفی توی هوم درست میکنیم و به npm میگیم که از این به بعد این مسیر درسته.
یک دایرکتوری توی هوم درست میکنیم:
|
|
به npm میگیم این مسیر جدید هست:
|
|
حالا توی فایل ~/.profile
این خط رو اضافه میکنیم:(اگر وجود نداشت درستش کنین)
|
|
خب تموم شد حالا برای تست میتونین یک پکیج بصورت گلوبال دانلود کنین:
|
|
راه حل سوم:
راه حل سوم هم برای مک هستش که اگر تازه میخواین node رو نصب کنین میتونین از Homebrew استفاده کنین که بطور خودکار با پرمیژن های صحیح براتون نصبش میکنه.
|
|
امیدوارم مفید بوده باشه. 😉 😉